function TreeNode(val) {
    this.val = val;
    this.left = null;
    this.right = null;
}

// 根节点val1
const node = new TreeNode(1)

const node2 = new TreeNode(2)
const node3 = new TreeNode(3)

// 左子节点val2
node.left = node2

// 右子节点val3
node.right = node3


const root = {
    val: 1,
    left: {
        val: 2,
        left: {
            val: 4,
            left: null,
            right: {
                val: 5,
                left: null,
                right: null
            }
        },
        right: null
    },
    right: {
        val: 3,
        left: null,
        right: {
            val: 6,
            left: null,
            right: null
        }
    }
}

//先序遍历
// function preorder(root) {
//     if (!root) {
//         return;//递归出口，如果没有值就返回
//     }
//     console.log(root.val);

//     preorder(root.left);
//     preorder(root.right);

// }

// preorder(root)//先序遍历。根左右

//中序遍历
// function inorder(root) {
//     if (!root) return

//     inorder(root.left)
//     console.log(root.val);
//     inorder(root.right)
// }
// inorder(root)

//后续遍历
function lastorder(root) {
    if (!root) return;

    lastorder(root.left)
    lastorder(root.right)
    console.log(root.val);
}

lastorder(root)
